package com.twb.code.gen.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.apache.ibatis.annotations.Param;

import com.twb.code.gen.entity.twbCodeGen.TwbCodeGen;
import com.twb.code.gen.entity.twbCodeGen.dto.SearchDataDicKeyDto;
import com.twb.code.gen.entity.twbCodeGen.dto.SearchTableColumnsDto;
import com.twb.code.gen.entity.twbCodeGen.dto.SearchTableDto;
import com.twb.code.gen.entity.twbCodeGen.dto.SearchTwbCodeGenDto;
import com.twb.code.gen.entity.twbCodeGen.vo.SaveTwbCodeGenVo;
import com.twb.code.gen.entity.twbCodeGen.vo.SearchTwbCodeGenVo;
import com.twb.code.gen.entity.twbCodeGen.vo.UpdateTwbCodeGenByIdVo;
import com.twb.core.base.entity.TwbPageInfo;
import com.twb.core.base.service.IBaseService;

/**
 * @ClassName ITwbCodeGenService
 * @Description 代码生成配置 service接口
 * 
 * @author DSY
 * @date 2021-12-31 15:30:38
 */
public interface ITwbCodeGenService extends IBaseService<TwbCodeGen> {

	/**
	 * @Title  searchTwbCodeGen
	 * @Description 分页查询
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2021-12-31 15:30:38
	 */
	public TwbPageInfo<SearchTwbCodeGenDto> searchTwbCodeGen(SearchTwbCodeGenVo vo);

	/**
	 * @Title  searchTwbCodeGen
	 * @Description 查询集合
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2021-12-31 15:30:38
	 */
	public List<SearchTwbCodeGenDto> searchTwbCodeGenList(SearchTwbCodeGenVo vo);

	/**
	 * @Title  saveTwbCodeGen
	 * @Description 保存信息
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2021-12-31 15:30:38
	 */
	public boolean saveTwbCodeGen(SaveTwbCodeGenVo vo);

	/**
	 * @Title  updateTwbCodeGenById
	 * @Description 更新信息
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2021-12-31 15:30:38
	 */
	public boolean updateTwbCodeGenById(UpdateTwbCodeGenByIdVo vo);

	/**
	 * @Title  deleteTwbCodeGenById
	 * @Description 删除信息
	 * @param id
	 * @return
	 * @author DSY
	 * @date 2021-12-31 15:30:38
	 */
	public boolean deleteTwbCodeGenById(String id);

	/**
	 * @Title  deleteTwbCodeGenByIds
	 * @Description 批量删除信息
	 * @param ids
	 * @return
	 * @author DSY
	 * @date 2021-12-31 15:30:38
	 */
	public boolean deleteTwbCodeGenByIds(String ids);

	/**
	 * @Title  logicBatchDeleteTwbCodeGenByIds
	 * @Description 批量逻辑删除
	 * @param ids
	 * @return
	 * @author DSY
	 * @date 2021-12-31 15:30:38
	 */
	public int logicBatchDeleteTwbCodeGenByIds(String ids);

	/**
	 * @Title  exportExcel
	 * @Description 导出excel
	 * @param exportExcelVo
	 * @param searchVo
	 * @return
	 * @author DSY
	 * @date 2021-12-31 15:30:38
	 */
	public void exportExcel(SearchTwbCodeGenVo vo, HttpServletResponse response) throws Exception;

	/**
	 * @Title  importExcel
	 * @Description 导入excel
	 * @param map
	 * @return
	 * @author DSY
	 * @date 2021-12-31 15:30:38
	 */
	public int importExcel(Map<String, String> map);

	/**
	 * @Title searchTables
	 * @Description 查询所有表、视图
	 * @param queryLikeStr
	 * @return
	 * @author DHL
	 * @date 2022年1月29日 上午10:08:43
	 */
	public List<SearchTableDto> searchTables(@Param("queryLikeStr") String queryLikeStr);

	/**
	 * @Title searchColumns
	 * @Description 查询列信息
	 * @param tableName
	 * @return
	 * @author DHL
	 * @date 2022年1月29日 上午10:09:15
	 */
	public List<SearchTableColumnsDto> searchColumns(@Param("tableName") String tableName);

	/**
	 * @Title searchDataDicKey
	 * @Description 查询数据字典key
	 * @return
	 * @author DHL
	 * @date 2022年1月29日 上午10:57:26
	 */
	public List<SearchDataDicKeyDto> searchDataDicKey();
}
